// 抽象类在TS中的应用
{
  // 抽象类无法实例化
  abstract class Animation {
    // 只是说明有这个方法,具体的方法细节可以不同,继承的子类必须实现该方法,除非它也是抽象类
    abstract move(): void
    // 抽象属性同上
    abstract name: string
    protected getPos(): number[] {
      return [100, 200]
    }
  }
  class Tank extends Animation {
    name: string = '敌军'
    public move(): void {
      console.log('敌方坦克移动');
    }
  }
  class Player extends Animation {
    name: string = '友军'
    public move(): void {
      console.log('玩家坦克移动');
    }
  }
  const tk = new Tank()
  const player = new Player()
  tk.move()
  player.move()
}